///plugin进行registerViewFactory注册，PlatformFactory的id值
const platformFactory = "com.notary.tx_live_plugin/tx_live_plugin";

/// channel注册名称
class Channel {
  ///插件的channel name
  static const plugin = "com.notary.tx_live_plugin";

  ///直播录像view，的channel name前缀
  static const pushChannel = "com.notary.tx_live_plugin/tx_live_push_";

  ///直播视频在线播放view，的channel name前缀
  static const playChannel = "com.notary.tx_live_plugin/tx_live_play_";

  ///视频聊天会议
  static const chatChannel = "com.notary.tx_live_plugin/tx_live_chat_";
}

/// plugin channel对应的方法名称
class PluginMethod {
  static const init = "init";
  static const getPlatformVersion = "getPlatformVersion";
}
class PluginKey {
  static const licenseURL = "licenseURL";
  static const licenceKey = "licenceKey";
}

///playChannel 相关方法名称  播放推流视频
class PlayMethod {
  static const startPlay = "startPlay";
  static const stopPlay = "stopPlay";
  static const onPause = "onPause";
  static const onResume = "onResume";
  static const onDestroy = "onDestroy";
  static const firstPlayRtmp = "firstPlayRtmp";
  static const isPlaying = "isPlaying";
  static const seek = "seek";

  ///back method
  static const error = "error";
  static const toast = "toast";
  static const backStartPlay = "startPlay";
  static const startLoading = "startLoading";
  static const playProcess = "playProcess";
  static const playStatus = "playStatus";
  static const checkPlayForNotWifi = "checkPlayForNotWifi";
}

class PlayKey{
  static const urls = "urls";
  static const cacheFilePath = "cacheFilePath";
  static const progress = "progress";
  static const duration = "duration";
  static const playable = "playable";
  static const startTime = "startTime";
  static const durationTime = "durationTime";
}

///pushChannel 推流相关方法名称
class PushMethod {
  static const startLivePush = "startLivePush";
  static const stopLivePush = "stopLivePush";
  static const onPause = "onPause";
  static const onResume = "onResume";
  static const onDestroy = "onDestroy";
  static const isPushRecording = "isPushRecording";
  static const turnOnFlashLight = "turnOnFlashLight";
  static const isFlashLightOpen = "isFlashLightOpen";
  static const isFontCamera = "isFontCamera";
  static const switchCamera = "switchCamera";
}

///pushChannel 推流相关方法 使用参数key名称
class PushKey{
  static const url = "url";
  static const serverTime = "serverTime";
  static const isBitrateStandard = "isBitrateStandard";
}

class PushBack{
  static const toast = "toast";
  static const error = "error";
  static const notifyPushStart = "notifyPushStart";
  static const videoProcessListener = "videoProcessListener";
  static const stopLivePush = "stopLivePush";
  static const toastSnackBar = "toastSnackBar";
}

class PushBackKey{
  static const cameraError = "cameraError";
  static const needNoticeServer = "needNoticeServer";
}

///chatChannel 聊天会议
class ChatMethod {
  static const startChat = "startChat";
  static const stopChat = "stopChat";
  static const onPause = "onPause";
  static const onResume = "onResume";
  static const onDestroy = "onDestroy";
  static const isCreating = "isCreating";
  static const isOpenAudio = "isOpenAudio";
  static const switchAudio = "switchAudio";
}

///chatChannel 方法startChat中 开始视频会议时，需要的参数名称
class ChatKey {
  static const sdkAppId = "sdkAppId";
  static const roomId = "roomId";
  static const userId = "userId";
  static const userSign = "userSign";
  //回调给flutter的方法中使用的key名称
  static const intoRoom = "intoRoom";
  static const timeCount = "timeCount";
}

///chatChannel 回调给flutter的方法
class ChatBack {
  static const toast = "toast";
  static const fail = "fail";
  static const notifyRoomCreate = "notifyRoomCreate";
  static const startTime = "startTime";
}

///用于platformViewFactory 工厂区分不同platformView
class ViewType {
  ///获取控件类型时，使用的key名称
  static const key = "tx_live_view_type";

  ///直播录像类型
  static const push = "tx_live_push";

  ///直播视频在线播放
  static const play = "tx_live_play";

  ///聊天会议
  static const chat = "tx_live_chat";
}
